]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
build: Check NEWS for version
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 31 Aug 2021 10:21:02 +0000 (12:21 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Sat, 4 Sep 2021 21:46:46 +0000 (23:46 +0200)
I don't think this ever happened to me, but it can't hurt enforcing
that every release has a corresponding NEWS entry.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1968>

meson.build
meson/check-version.py [new file with mode: 0755]

index 5c891a504fc5e2fad6c1439b078e08eb740dce9e..b9c7ef7500a4adfa67a730ae3b76c05bcb0653b1 100644 (file)
@@ -298,6 +298,7 @@ endif
 meson.add_install_script('meson/postinstall.py')
 meson.add_dist_script('meson/generate-manpages.py')
 meson.add_dist_script('meson/generate-stylesheets.py')
+meson.add_dist_script('meson/check-version.py', meson.project_version(), 'NEWS')
 
 summary_options = {
   'networkmanager': get_option('networkmanager'),
diff --git a/meson/check-version.py b/meson/check-version.py
new file mode 100755 (executable)
index 0000000..81750c9
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+import os, sys
+from pathlib import Path
+import argparse, subprocess
+
+def check_version(version, file, type='news'):
+    if type == 'news':
+        line = file.open().readline()
+        ok = line.startswith(version)
+        print("{}: {}".format(file, "OK" if ok else "FAILED"))
+        if not ok:
+            raise Exception("{} does not start with {}".format(file, version))
+    elif type == 'metainfo':
+        subprocess.run(['appstream-util', 'validate-version', file, version],
+                       check=True)
+    else:
+        raise Exception('Not implemented')
+
+parser = argparse.ArgumentParser(description='Check release version information.')
+parser.add_argument('--type', choices=['metainfo','news'], default='news')
+parser.add_argument('version', help='the version to check for')
+parser.add_argument('files', nargs='+', help='files to check')
+args = parser.parse_args()
+
+distroot = os.environ.get('MESON_DIST_ROOT', './')
+
+try:
+    for file in args.files:
+        check_version(args.version, Path(distroot, file), args.type)
+except:
+    sys.exit(1)